cycloïde - Velo (Thierry Vayssieres)
Author: Thierry Vayssieres
Date: 16/12/05

saisissez le point M et faites le bouger.

b = 2
O = Point(yAxis)
c = Line(O, a)
A = Point(c)
d = Ray(O, A)
M = Point(d)
e = OrthogonalLine(M, d)
B = Intersect(a, e)
D = Intersect(e, xAxis)
f = 2
g = Circle(B, f)
h = Distance(O, M)
C = Rotate(D, -h / 2, B)
i = Segment(B, C)
E = Point(e)
j = 2
k = Circle(E, j)
F = Rotate(M, -h / 2, E)
l = Segment(E, F)
E' = Rotate(E, 6.1086523819801535 rad, E)
F' = Rotate(F, 6.1086523819801535 rad, E)
m = Segment(E', F')
E'' = Rotate(E', 6.1086523819801535 rad, E)
F'' = Rotate(F', 6.1086523819801535 rad, E)
n = Segment(E'', F'')
E''' = Rotate(E'', 6.1086523819801535 rad, E)
F''' = Rotate(F'', 6.1086523819801535 rad, E)
p = Segment(E''', F''')
E'''' = Rotate(E''', 6.1086523819801535 rad, E)
F'''' = Rotate(F''', 6.1086523819801535 rad, E)
q = Segment(E'''', F'''')
E''''' = Rotate(E'''', 6.1086523819801535 rad, E)
F''''' = Rotate(F'''', 6.1086523819801535 rad, E)
r = Segment(E''''', F''''')
o = Distance(E, r)
E'''''' = Rotate(E''''', 6.1086523819801535 rad, E)
F'''''' = Rotate(F''''', 6.1086523819801535 rad, E)
s = Segment(E'''''', F'''''')
E''''''' = Rotate(E'''''', 0.17453292519943295 rad, E)
F''''''' = Rotate(F'''''', 0.17453292519943295 rad, E)
t = Segment(E''''''', F''''''')
E'''''''_1 = Rotate(E'''''', 6.1086523819801535 rad, E)
Q = Rotate(F'''''', 6.1086523819801535 rad, E)
a_1 = Segment(E'''''''_1, Q)
G = Rotate(F, 0.17453292519943295 rad, E)
H = Rotate(G, 0.17453292519943295 rad, E)
I = Rotate(H, 0.17453292519943295 rad, E)
J = Rotate(I, 0.17453292519943295 rad, E)
K = Rotate(J, 0.17453292519943295 rad, E)
L = Rotate(K, 0.17453292519943295 rad, E)
N = Rotate(L, 0.17453292519943295 rad, E)
P = Rotate(N, 0.17453292519943295 rad, E)
R = Rotate(P, 0.17453292519943295 rad, E)
S = Rotate(R, 0.17453292519943295 rad, E)
T = Rotate(S, 0.17453292519943295 rad, E)
U = Rotate(T, 0.17453292519943295 rad, E)
V = Rotate(U, 0.17453292519943295 rad, E)
W = Rotate(V, 0.17453292519943295 rad, E)
Y = Rotate(W, 0.17453292519943295 rad, E)
Z = Rotate(Y, 0.17453292519943295 rad, E)
A_1 = Rotate(Z, 0.17453292519943295 rad, E)
B_1 = Rotate(A_1, 0.17453292519943295 rad, E)
C_1 = Rotate(B_1, 0.17453292519943295 rad, E)
E_1 = Rotate(C_1, 0.17453292519943295 rad, E)
F_1 = Rotate(E_1, 0.17453292519943295 rad, E)
G_1 = Rotate(F_1, 0.17453292519943295 rad, E)
H_1 = Rotate(G_1, 0.17453292519943295 rad, E)
I_1 = Rotate(H_1, 0.17453292519943295 rad, E)
J_1 = Rotate(I_1, 0.17453292519943295 rad, E)
K_1 = Rotate(J_1, 0.17453292519943295 rad, E)
L_1 = Rotate(K_1, 0.17453292519943295 rad, E)
M_1 = Rotate(L_1, 0.17453292519943295 rad, E)
b_1 = Segment(G, E)
c_1 = Segment(H, E)
d_1 = Segment(E, I)
e_1 = Segment(J, E)
f_1 = Segment(E, K)
g_1 = Segment(L, E)
h_1 = Segment(E, N)
i_1 = Segment(P, E)
j_1 = Segment(E, R)
k_1 = Segment(S, E)
l_1 = Segment(E, T)
m_1 = Segment(U, E)
n_1 = Segment(E, V)
p_1 = Segment(W, E)
q_1 = Segment(E, Y)
r_1 = Segment(Z, E)
s_1 = Segment(E, A_1)
t_1 = Segment(B_1, E)
a_2 = Segment(E, C_1)
b_2 = Segment(E_1, E)
c_2 = Segment(E, F_1)
d_2 = Segment(G_1, E)
e_2 = Segment(E, H_1)
f_2 = Segment(I_1, E)
g_2 = Segment(E, J_1)
h_2 = Segment(K_1, E)
i_2 = Segment(E, L_1)
j_2 = Segment(M_1, E)
D_1 = (2, -10)
N_1 = (8, -10)
u = Vector(D_1, N_1)
P_1, f_3, g_3, h_3, i_3, j_3, k_2, l_2, n_2, p_2, r_2, s_2, t_2, u_1, v, w, y, z, a_3, b_3, c_3, e_3, f_4, g_4, h_4, i_4, j_4, k_3, l_3, m_2, q_2, f'''''', f''''''', f'''', f''', f'', f' = Polygon(F, G, H, I, J, K, L, N, P, R, S, T, U, V, W, Y, Z, A_1, B_1, C_1, E_1, F_1, G_1, H_1, I_1, J_1, K_1, L_1, M_1, Q, F'''''', F''''''', F'''', F''', F'', F')
F'_1 = Translate(F, u)
G' = Translate(G, u)
H' = Translate(H, u)
I' = Translate(I, u)
J' = Translate(J, u)
K' = Translate(K, u)
L' = Translate(L, u)
N' = Translate(N, u)
P' = Translate(P, u)
R' = Translate(R, u)
S' = Translate(S, u)
T' = Translate(T, u)
U' = Translate(U, u)
V' = Translate(V, u)
W' = Translate(W, u)
Y' = Translate(Y, u)
Z' = Translate(Z, u)
A_1' = Translate(A_1, u)
B_1' = Translate(B_1, u)
C_1' = Translate(C_1, u)
E_1' = Translate(E_1, u)
F_1' = Translate(F_1, u)
G_1' = Translate(G_1, u)
H_1' = Translate(H_1, u)
I_1' = Translate(I_1, u)
J_1' = Translate(J_1, u)
K_1' = Translate(K_1, u)
L_1' = Translate(L_1, u)
M_1' = Translate(M_1, u)
Q' = Translate(Q, u)
F'''''''_1 = Translate(F'''''', u)
F'''''''' = Translate(F''''''', u)
F'''''_1 = Translate(F'''', u)
F''''_1 = Translate(F''', u)
F'''_1 = Translate(F'', u)
F''_1 = Translate(F', u)
P_1', f'_1, g', h', i', j', k', l', n', p', r', s', t', u', v', w', y', z', a_1', b_1', c_1', e_1', f_1', g_1', h_1', i_1', j_1', k_1', l_1', m_1', q', f'''''''_1, f'''''''', f'''''_1, f''''_1, f'''_1, f''_1 = Polygon(F'_1, G', H', I', J', K', L', N', P', R', S', T', U', V', W', Y', Z', A_1', B_1', C_1', E_1', F_1', G_1', H_1', I_1', J_1', K_1', L_1', M_1', Q', F'''''''_1, F'''''''', F'''''_1, F''''_1, F'''_1, F''_1)
E'_1 = Translate(E, u)
F'_2 = Translate(F, u)
d_3 = Segment(E'_1, F'_2)
p_3 = Circle(E'_1, F'_1)
m_3 = Segment(G', E'_1)
n_3 = Segment(E'_1, H')
q_3 = Segment(I', E'_1)
r_3 = Segment(E'_1, J')
s_3 = Segment(K', E'_1)
t_3 = Segment(E'_1, L')
a_4 = Segment(N', E'_1)
b_4 = Segment(E'_1, P')
c_4 = Segment(R', E'_1)
d_4 = Segment(E'_1, S')
e_4 = Segment(T', E'_1)
k_4 = Segment(E'_1, U')
l_4 = Segment(V', E'_1)
m_4 = Segment(E'_1, W')
n_4 = Segment(Y', E'_1)
p_4 = Segment(E'_1, Z')
q_4 = Segment(A_1', E'_1)
r_4 = Segment(E'_1, B_1')
s_4 = Segment(C_1', E'_1)
t_4 = Segment(E'_1, E_1')
a_5 = Segment(F_1', E'_1)
b_5 = Segment(E'_1, G_1')
c_5 = Segment(H_1', E'_1)
d_5 = Segment(E'_1, I_1')
e_5 = Segment(J_1', E'_1)
f_5 = Segment(E'_1, K_1')
g_5 = Segment(L_1', E'_1)
h_5 = Segment(E'_1, M_1')
i_5 = Segment(Q', E'_1)
j_5 = Segment(E'_1, F'''''''_1)
k_5 = Segment(F'''''''', E'_1)
l_5 = Segment(E'_1, F'''''_1)
m_5 = Segment(F''''_1, E'_1)
n_5 = Segment(E'_1, F'''_1)
p_5 = Segment(F''_1, E'_1)
O_1 = (5.231420627851673, -12.008422420216446)
Q_1 = (2, -12)
v_1 = Vector(Q_1, O_1)
R_1 = Translate(E, v_1)
S_1 = (4, -9)
w_1 = Vector(Q_1, S_1)
T_1 = Translate(E, w_1)
z_1: v_1 + w_1
U_1 = Translate(E, z_1)
q_5 = Segment(E, R_1)
r_5 = Segment(R_1, U_1)
s_5 = Segment(U_1, T_1)
t_5 = Segment(T_1, E)
a_6 = Ray(R_1, T_1)
V_1 = Point(a_6)
b_6 = Segment(R_1, V_1)
c_6 = Ray(E'_1, U_1)
d_6 = Line(V_1, s_5)
W_1 = Intersect(c_6, d_6)
e_6 = Segment(E'_1, W_1)
Y_1 = (-2, -12)
Z_1 = (-1.5, -12)
u_2 = Vector(Y_1, Z_1)
A_2 = Translate(V_1, u_2)
B_2 = Mirror(A_2, V_1)
f_6 = Segment(B_2, A_2)
C_2 = Translate(W_1, u_2)
v_2 = Vector(W_1, U_1)
D_2 = Translate(C_2, v_2)
g_6 = Semicircle(C_2, D_2)
h_6 = Segment(W_1, C_2)
o_1 = 0.5
k_6 = Circle(R_1, o_1)
E_2 = Point(k_6)
F_2 = Rotate(E_2, -4 h, R_1)
G_2 = Mirror(F_2, R_1)
H_2 = Rotate(F_2, 4.71238898038469 rad, R_1)
I_2 = Mirror(H_2, R_1)
i_6 = Segment(F_2, G_2)
j_6 = Segment(H_2, I_2)
J_2 = Rotate(F_2, 5.497787143782138 rad, R_1)
K_2 = Mirror(J_2, R_1)
L_2 = Mirror(R_1, J_2)
M_2 = Mirror(R_1, K_2)
l_6 = Segment(L_2, M_2)
m_6 = Line(M_2, a)
n_6 = Line(L_2, a)
N_2 = Point(m_6)
O_2 = Mirror(N_2, M_2)
P_2 = Mirror(N_2, R_1)
Q_2 = Mirror(P_2, L_2)
p_6 = Segment(P_2, Q_2)
q_6 = Segment(O_2, N_2)
r_6 = OrthogonalLine(M, a)
R_2 = Intersect(a, r_6)
o_2 = 2
s_6 = Circle(R_2, o_2)
S_2 = Intersect(s_6, xAxis, 1)
T_2 = Rotate(S_2, -h / 2, R_2)
t_6 = Segment(R_2, T_2)
a_7 = Segment(F, T_2)
loc1 = Locus(T_2, M)
U_2 = Point(k_6)
b_7 = Segment(E, U_2)
V_2 = Point(k_6)
c_7 = Segment(E, V_2)